﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kokomo.Lexical.Expressions;

namespace Kokomo.PeInspector.Reflection.Disassembly
{
	class DereferenceExpression : Expression
	{
		public override string ToString()
		{
			return "*" + this.Expression.ToString();
		}
		public Expression Expression { get; private set; }

		public DereferenceExpression(Expression expression)
		{
			if (expression == null) throw new ArgumentNullException("expression");

			this.Expression = expression;
		}
		//public override Type Compile(ExpressionCompilationContext context)
		//{
		//    throw new NotImplementedException();
		//}

		//protected override ExpressionResult ExecuteCore(ExpressionEvaluationContext context, ExpressionExecutionMode mode)
		//{
		//    throw new NotImplementedException();
		//}
		public override ExpressionResult Evaluate(ExpressionEvaluateContext context)
		{
			throw new NotImplementedException();
		}
	}
}
